Version 0.4.0:
- General cleanup of the code base
- Implemented object-oriented notification system between objects: all objects which need to monitor other objects utilize the observer/observable pattern
- Implemented full amaroK DCOP bindings abstraction
- Changed LEAST and GREATEST SQL sentences to MAX and MIN when using SQLite
- GTK+ interface removed
- Accelerators on every user interface window
- Fixed some incumbent bugs
- Fixed bug where paths with URL-forbidden characters (?) fail to be added to the playlist
- Changed precision in similarity display for similar song search


Version 0.3.6
- Autodetecting database type and basing quoting on database type (MySQL and SQLite quote strings differently)


Version 0.3.5
- A new tempo setting dialog has been incorporated to Smart DJ, letting you tap the tempo and offering you the choice of the newly estimated tempo, or a factor of the original tempo (for songs that have already been analyzed, this is the most accurate tempo value)
- Corrected some signal connection errors (the timeout(void) famous error) in PyQt user interface


Version 0.3.4
- Corrected absolute path bug in context browser monitor job
- Trapped ValueErrors in get_similar_songs


Version 0.3.3
- Corrected small bug in def associate() processing which impeded certain songs from advancing the process
- Caused configuration window to show only once, and raise itself it is shown already
- Added WhatsThis information for all visible controls in the dialogs for the Qt interface
- Changed "songs" for "tracks" everywhere, to conform to amaroKspeak more
- Added "add to playlist" and "search similar tracks" in Qt interface search window, and double-click handler for search window resultsView widget as well
- Changed dragndrop handler in search window to work with URIs instead of paths
- Changed sys.getfilesystemencoding() to locale.getpreferredencoding() everywhere
- Qt interface: corrected a bug in the handling of changing smart playlist selection in the config window
- New option "Use the last song I liked" for Auto DJ mode
- Similar tracks box in context browser now displays what criteria is used for the search


Version 0.3.2
- Corrected a bug in Playlist which caused it to be reread OK but not emptied when rereading
- Made the PyQt config dialog user interface more nice and understandable
- Made operation during Auto DJ inspection loop more verbose (use status bar messages to explain what's going on)
- Made status messages more conformant to amaroK's style
- Made more status messages to announce Auto DJ is operating, and what it is doing
- Cleaned up song analysis loop


Version 0.3.1 - 17/11/05 02:36
- Trap errors produced in PyQt UI
- Correct various sync errors and objects not being destroyed at the right times (deadlocks!)
- Trap errors produced by not being able to search in PyQt UI (nice msgboxes)


Version 0.3.0 16/11/05 16:24
- Nearly fully implemented UI in PyQt


Version 0.2.0 - 15/11/05 01:04
- Split several separate functionalities in different packages
- Added another (blazingly fast) implementation of DCOP communication based on kdebindings
- Auto create database schema
- Added search window option to search for a fixed tempo
- A number of optimizations
- Added controls to let Auto DJ choose songs from the entire collection or from a Smart playlist
- Made similar track information appear in the Context Browser, Current tab
- Made Auto DJ consider for exclusion only tracks currently in the playlist and tracks that were auto-added but removed manually by the user
- Initial public release